4 research outputs found

    Programming models to support data science workflows

    Get PDF
    Data Science workflows have become a must to progress in many scientific areas such as life, health, and earth sciences. In contrast to traditional HPC workflows, they are more heterogeneous; combining binary executions, MPI simulations, multi-threaded applications, custom analysis (possibly written in Java, Python, C/C++ or R), and real-time processing. Furthermore, in the past, field experts were capable of programming and running small simulations. However, nowadays, simulations requiring hundreds or thousands of cores are widely used and, to this point, efficiently programming them becomes a challenge even for computer sciences. Thus, programming languages and models make a considerable effort to ease the programmability while maintaining acceptable performance. This thesis contributes to the adaptation of High-Performance frameworks to support the needs and challenges of Data Science workflows by extending COMPSs, a mature, general-purpose, task-based, distributed programming model. First, we enhance our prototype to orchestrate different frameworks inside a single programming model so that non-expert users can build complex workflows where some steps require highly optimised state of the art frameworks. This extension includes the @binary, @OmpSs, @MPI, @COMPSs, and @MultiNode annotations for both Java and Python workflows. Second, we integrate container technologies to enable developers to easily port, distribute, and scale their applications to distributed computing platforms. This combination provides a straightforward methodology to parallelise applications from sequential codes along with efficient image management and application deployment that ease the packaging and distribution of applications. We distinguish between static, HPC, and dynamic container management and provide representative use cases for each scenario using Docker, Singularity, and Mesos. Third, we design, implement and integrate AutoParallel, a Python module to automatically find an appropriate task-based parallelisation of affine loop nests and execute them in parallel in a distributed computing infrastructure. It is based on sequential programming and requires one single annotation (the @parallel Python decorator) so that anyone with intermediate-level programming skills can scale up an application to hundreds of cores. Finally, we propose a way to extend task-based management systems to support continuous input and output data to enable the combination of task-based workflows and dataflows (Hybrid Workflows) using one single programming model. Hence, developers can build complex Data Science workflows with different approaches depending on the requirements without the effort of combining several frameworks at the same time. Also, to illustrate the capabilities of Hybrid Workflows, we have built a Distributed Stream Library that can be easily integrated with existing task-based frameworks to provide support for dataflows. The library provides a homogeneous, generic, and simple representation of object and file streams in both Java and Python; enabling complex workflows to handle any data type without dealing directly with the streaming back-end.Els fluxos de treball de Data Science s鈥檋an convertit en una necessitat per progressar en moltes 脿rees cient铆fiques com les ci猫ncies de la vida, la salut i la terra. A difer猫ncia dels fluxos de treball tradicionals per a la CAP, els fluxos de Data Science s贸n m茅s heterogenis; combinant l鈥檈xecuci贸 de binaris, simulacions MPI, aplicacions multiproc茅s, an脿lisi personalitzats (possiblement escrits en Java, Python, C / C ++ o R) i computacions en temps real. Mentre que en el passat els experts de cada camp eren capa莽os de programar i executar petites simulacions, avui dia, aquestes simulacions representen un repte fins i tot per als experts ja que requereixen centenars o milers de nuclis. Per aquesta ra贸, els llenguatges i models de programaci贸 actuals s鈥檈sforcen considerablement en incrementar la programabilitat mantenint un rendiment acceptable. Aquesta tesi contribueix a l鈥檃daptaci贸 de models de programaci贸 per a la CAP per afrontar les necessitats i reptes dels fluxos de Data Science estenent COMPSs, un model de programaci贸 distribu茂da madur, de prop貌sit general, i basat en tasques. En primer lloc, millorem el nostre prototip per orquestrar diferent programari per a que els usuaris no experts puguin crear fluxos complexos usant un 煤nic model on alguns passos requereixin tecnologies altament optimitzades. Aquesta extensi贸 inclou les anotacions de @binary, @OmpSs, @MPI, @COMPSs, i @MultiNode per a fluxos en Java i Python. En segon lloc, integrem tecnologies de contenidors per permetre als desenvolupadors portar, distribuir i escalar f脿cilment les seves aplicacions en plataformes distribu茂des. A m茅s d鈥檜na metodologia senzilla per a paral路lelitzar aplicacions a partir de codis seq眉encials, aquesta combinaci贸 proporciona una gesti贸 d鈥檌matges i una implementaci贸 d鈥檃plicacions eficients que faciliten l鈥檈mpaquetat i la distribuci贸 d鈥檃plicacions. Distingim entre la gesti贸 de contenidors est脿tica, CAP i din脿mica i proporcionem casos d鈥櫭簊 representatius per a cada escenari amb Docker, Singularity i Mesos. En tercer lloc, dissenyem, implementem i integrem AutoParallel, un m貌dul de Python per determinar autom脿ticament la paral路lelitzaci贸 basada en tasques de nius de bucles afins i executar-los en paral路lel en una infraestructura distribu茂da. AutoParallel est脿 basat en programaci贸 seq眉encial, requereix una sola anotaci贸 (el decorador @parallel) i permet a un usuari intermig escalar una aplicaci贸 a centenars de nuclis. Finalment, proposem una forma d鈥檈stendre els sistemes basats en tasques per admetre dades d鈥檈ntrada i sortida continus; permetent aix铆 la combinaci贸 de fluxos de treball i dades (Fluxos H铆brids) en un 煤nic model. Conseq眉entment, els desenvolupadors poden crear fluxos complexos seguint diferents patrons sense l鈥檈sfor莽 de combinar diversos models al mateix temps. A m茅s, per a il路lustrar les capacitats dels Fluxos H铆brids, hem creat una biblioteca (DistroStreamLib) que s鈥檌ntegra f脿cilment amb els models basats en tasques per suportar fluxos de dades. La biblioteca proporciona una representaci贸 homog猫nia, gen猫rica i simple de seq眉猫ncies cont铆nues d鈥檕bjectes i arxius en Java i Python; permetent gestionar qualsevol tipus de dades sense tractar directament amb el back-end de streaming.Los flujos de trabajo de Data Science se han convertido en una necesidad para progresar en muchas 谩reas cient铆ficas como las ciencias de la vida, la salud y la tierra. A diferencia de los flujos de trabajo tradicionales para la CAP, los flujos de Data Science son m谩s heterog茅neos; combinando la ejecuci贸n de binarios, simulaciones MPI, aplicaciones multiproceso, an谩lisis personalizados (posiblemente escritos en Java, Python, C/C++ o R) y computaciones en tiempo real. Mientras que en el pasado los expertos de cada campo eran capaces de programar y ejecutar peque帽as simulaciones, hoy en d铆a, estas simulaciones representan un desaf铆o incluso para los expertos ya que requieren cientos o miles de n煤cleos. Por esta raz贸n, los lenguajes y modelos de programaci贸n actuales se esfuerzan considerablemente en incrementar la programabilidad manteniendo un rendimiento aceptable. Esta tesis contribuye a la adaptaci贸n de modelos de programaci贸n para la CAP para afrontar las necesidades y desaf铆os de los flujos de Data Science extendiendo COMPSs, un modelo de programaci贸n distribuida maduro, de prop贸sito general, y basado en tareas. En primer lugar, mejoramos nuestro prototipo para orquestar diferentes software para que los usuarios no expertos puedan crear flujos complejos usando un 煤nico modelo donde algunos pasos requieran tecnolog铆as altamente optimizadas. Esta extensi贸n incluye las anotaciones de @binary, @OmpSs, @MPI, @COMPSs, y @MultiNode para flujos en Java y Python. En segundo lugar, integramos tecnolog铆as de contenedores para permitir a los desarrolladores portar, distribuir y escalar f谩cilmente sus aplicaciones en plataformas distribuidas. Adem谩s de una metodolog铆a sencilla para paralelizar aplicaciones a partir de c贸digos secuenciales, esta combinaci贸n proporciona una gesti贸n de im谩genes y una implementaci贸n de aplicaciones eficientes que facilitan el empaquetado y la distribuci贸n de aplicaciones. Distinguimos entre gesti贸n de contenedores est谩tica, CAP y din谩mica y proporcionamos casos de uso representativos para cada escenario con Docker, Singularity y Mesos. En tercer lugar, dise帽amos, implementamos e integramos AutoParallel, un m贸dulo de Python para determinar autom谩ticamente la paralelizaci贸n basada en tareas de nidos de bucles afines y ejecutarlos en paralelo en una infraestructura distribuida. AutoParallel est谩 basado en programaci贸n secuencial, requiere una sola anotaci贸n (el decorador @parallel) y permite a un usuario intermedio escalar una aplicaci贸n a cientos de n煤cleos. Finalmente, proponemos una forma de extender los sistemas basados en tareas para admitir datos de entrada y salida continuos; permitiendo as铆 la combinaci贸n de flujos de trabajo y datos (Flujos H铆bridos) en un 煤nico modelo. Consecuentemente, los desarrolladores pueden crear flujos complejos siguiendo diferentes patrones sin el esfuerzo de combinar varios modelos al mismo tiempo. Adem谩s, para ilustrar las capacidades de los Flujos H铆bridos, hemos creado una biblioteca (DistroStreamLib) que se integra f谩cilmente a los modelos basados en tareas para soportar flujos de datos. La biblioteca proporciona una representaci贸n homog茅nea, gen茅rica y simple de secuencias continuas de objetos y archivos en Java y Python; permitiendo manejar cualquier tipo de datos sin tratar directamente con el back-end de streaming

    Disseny, implementaci贸 i integraci贸 d'una m脿 per a un robot Darwin-OP

    No full text
    Este 铆tem (excepto textos e im谩genes no creados por el autor) est谩 sujeto a una licencia de Creative Commons: Attribution-NonCommercial-NoDerivs 3.0 Spain.Aquest projecte vol dotar al robot Darwin-OP de la capacitat d鈥檃gafar petits objectes mitjan莽ant el disseny, la implementaci贸 i la integraci贸 d鈥檜na m脿 antropom貌rfica (avantbra莽, canell, m脿 i dits). Es considera de gran import脿ncia que el prototipus final sigui de construcci贸 r脿pida i baix cost. En primer lloc es presenta breument el context actual de la rob貌tica, centrant-se particularment en el desenvolupament de bra莽os rob貌tics i de petits humanoides. Tanmateix, es fa una comparaci贸 del robot emprat per aquest projecte i el seu competidor directe: Nao. Seguidament es detalla el proc茅s de disseny de la m脿 que es duu a terme mitjan莽ant un programari de CAD-3D (SolidWorks). Al final d鈥檃quest apartat es fa especial al路lusi贸 al disseny del prototipus final, detallant-ne els pl脿nols per a que els usuaris del robot Darwin-OP el puguin emprar. Gaireb茅 simult脿niament a aquest darrer proc茅s s鈥檈xplica el proc茅s d鈥檌mplementaci贸, que s鈥檋a realitzat mitjan莽ant una impressora d鈥橝BS 3D. En particular, es fa refer猫ncia als avantatges i als inconvenients que aquest m猫tode aporta, i a la senzillesa constructiva de muntatge de la m脿. A continuaci贸 es tanca el proc茅s de construcci贸 amb la integraci贸 hardware i software del prototipus al robot Darwin-OP. En aquest apartat es presenten els servomotors Robotis Dynamixel XL-320 emprats, s鈥檈specifica la seva instal路laci贸 per a unir la m脿 amb el robot i es detalla el codi del controlador per a que Darwin-OP reconegui i es comuniqui amb els servomotors. A m茅s, s鈥檃djunten les proves realitzades per a verificar el correcte funcionament del prototipus. Per 煤ltim, es constata que el prototipus constru茂t compleix les necessitats inicials: dota al Darwin-OP de la capacitat d鈥檃gafar objectes petits, 茅s de construcci贸 r脿pida i 茅s de baix cost. Aix铆 mateix, s鈥檈numeren els aspectes ampliables d鈥檃quest projecte com podria ser la introducci贸 de sensors de pressi贸 als dits.Peer Reviewe

    Disseny, implementaci贸 i integraci贸 d'una m脿 per a un robot Darwin-OP

    No full text
    Aquest projecte vol dotar al robot Darwin-OP de la capacitat d鈥檃gafar petits objectes mitjan莽ant el disseny, la implementaci贸 i la integraci贸 d鈥檜na m脿 antropom貌rfica (avantbra莽, canell, m脿 i dits). Es considera de gran import脿ncia que el prototipus final sigui de construcci贸 r脿pida i baix cost. En primer lloc es presenta breument el context actual de la rob貌tica, centrant-se particularment en el desenvolupament de bra莽os rob貌tics i de petits humanoides. Tanmateix, es fa una comparaci贸 del robot emprat per aquest projecte i el seu competidor directe: Nao. Seguidament es detalla el proc茅s de disseny de la m脿 que es duu a terme mitjan莽ant un programari de CAD-3D (SolidWorks). Al final d鈥檃quest apartat es fa especial al路lusi贸 al disseny del prototipus final, detallant-ne els pl脿nols per a que els usuaris del robot Darwin-OP el puguin emprar. Gaireb茅 simult脿niament a aquest darrer proc茅s s鈥檈xplica el proc茅s d鈥檌mplementaci贸, que s鈥檋a realitzat mitjan莽ant una impressora d鈥橝BS 3D. En particular, es fa refer猫ncia als avantatges i als inconvenients que aquest m猫tode aporta, i a la senzillesa constructiva de muntatge de la m脿. A continuaci贸 es tanca el proc茅s de construcci贸 amb la integraci贸 hardware i software del prototipus al robot Darwin-OP. En aquest apartat es presenten els servomotors Robotis Dynamixel XL-320 emprats, s鈥檈specifica la seva instal路laci贸 per a unir la m脿 amb el robot i es detalla el codi del controlador per a que Darwin-OP reconegui i es comuniqui amb els servomotors. A m茅s, s鈥檃djunten les proves realitzades per a verificar el correcte funcionament del prototipus. Per 煤ltim, es constata que el prototipus constru茂t compleix les necessitats inicials: dota al Darwin-OP de la capacitat d鈥檃gafar objectes petits, 茅s de construcci贸 r脿pida i 茅s de baix cost. Aix铆 mateix, s鈥檈numeren els aspectes ampliables d鈥檃quest projecte com podria ser la introducci贸 de sensors de pressi贸 als dits

    Enabling Analytic and HPC Workflows with COMPSs

    No full text
    In the recent joint venture between High-Performance Computing (HPC) and Big-Data (BD) Ecosystems towards the Exascale Computing, the scientific community has realized that powerful programming models and high-level abstraction tools are a must. Within this context, the Barcelona Supercomputing Center (BSC) is developing the COMP Superscalar (COMPSs) programming model, whose main objective is to develop applications in a sequential way, while the Runtime System handles the inherent parallelism of the application and abstracts the programmer from the different underlying infrastructures. The parallelism is achieved by defining an application Interface that allows COMPSs to detect methods that operate on a set of parameters (called tasks), and execute them distributedly and transparently. This Master Thesis aims to enhance COMPSs, adapting it to the needs of the Big-Data Ecosystems, by supporting Analytic and HPC workflows. To this end, we propose a straightforward integration with the execution of binaries, and MPI and OmpSs applications. Although the COMPSs programming model is kept untouched, we extend the COMPSs Annotations and some of the COMPSs internals such as the task schedulers and the worker executors. To support our contribution, we have ported to COMPSs two real use cases. On the one hand, NMMB BSC-Dust, a workflow to predict the atmospheric life cycle of the desert dust and, on the other hand, Guidance, an integrated solution for Genome and Phenome association analysis
    corecore